package com.gl.glbooks.model
	
{
	import com.gl.glbooks.model.constants.Constants;
	import com.gl.glbooks.view.GestionarEjemplarPanel;
	import com.gl.glbooks.vos.Confirmacion;
	import com.gl.glbooks.vos.Ejemplar;
	import com.gl.glbooks.vos.Libro;
	import com.gl.glbooks.vos.LibroFisico;
	
	import mx.collections.ArrayCollection;

	public class EjemplarPanelModel
	{
		
		private var _libroSeleccionado:Libro;
		
		[Bindable]
		public var ejemplares:ArrayCollection;
		
		[Bindable]
		public var panel:GestionarEjemplarPanel;
		
		[Bindable]
		public var ejemplarSeleccionado:Ejemplar;
		
		[Bindable]
		public var oficinas:ArrayCollection;
		
		[Bindable]
		public function get libroSeleccionado():Libro
		{
			return _libroSeleccionado;
		}
		
		public function set libroSeleccionado(value:Libro):void
		{
			if( value != _libroSeleccionado )
			{
				_libroSeleccionado = value;
				if( _libroSeleccionado is LibroFisico )
				{	
					ejemplares = new ArrayCollection( ( _libroSeleccionado as LibroFisico ).ejemplar.toArray() ); 
					ejemplares.filterFunction = ejemplarFilterFunction;
					ejemplares.refresh();
					if( panel )
					{
						panel.limpiar();
					}
				}
			}
		}
		
		private function ejemplarFilterFunction( obj:Object ):Boolean
		{
			if( obj is Ejemplar )
			{
				var ejemplar:Ejemplar = obj as Ejemplar;
				
				if(ejemplar.fechaBaja==null){
					return true;
				}
				
			}	
			return false;
		}		
		
		public function setConfirmacionEliminarEjemplar( confirmacion:Confirmacion, ejemplar:Ejemplar ):void
		{
			if( confirmacion.estado == Constants.CONFIRMACION_OK )
			{
				var ejemplarIndex:int = ejemplares.getItemIndex( ejemplar );
				
				if( ejemplarIndex != -1 )
				{ 
					ejemplares.removeItemAt( ejemplarIndex );
				}
				
			}
		}
				
		
		
		
		
		
		
		
	}
}